﻿namespace Blip.API
{
    using Utility;

    /// <summary>
    /// Klasa kodująca informacje uwierzytelniające do postaci Base64.
    /// </summary>
    /// <seealso cref="IAuthInfo"/>
    internal class AuthInfo : IAuthInfo
    {
        /// <summary>
        /// Konstruktor kodujący ciąg "username:password" do postaci Base64.
        /// </summary>
        /// <param name="username">Nazwa użytkownika</param>
        /// <param name="password">Hasło</param>
        public AuthInfo(string username, string password)
        {
            Username = username;
            Password = password;
            var sb = new System.Text.StringBuilder(Username);
            sb.Append(':');
            sb.Append(Password);
            Credentials = sb.ToString().ToBase64();
        }

        /// <summary>
        /// Nazwa użytkownika.
        /// </summary>
        public virtual string Username { get; private set; }

        /// <summary>
        /// Hasło.
        /// </summary>
        public virtual string Password { get; private set; }

        /// <summary>
        /// Zakodowane dane w postaci Base64.
        /// </summary>
        public virtual string Credentials { get; private set; }
    }
}
